Команда разработки Go столкнулась с трудностями при попытке упростить этот процесс через синтаксические изменения языка.
За последние несколько лет разработчики пытались улучшить обработку ошибок через:
• Механизм
check/handle
в 2018.• Функцию
try
в 2019.• Предложение с оператором «
?
» в 2024.Предложенные механизмы не получили поддержки сообщества, и разработчики решили сохранить текущую модель обработки ошибок.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
✅ Чек-лист для создания и запуска пет-проекта
Составили для вас чек-лист, который поможет вам структурировать процесс создания вашего пет-проекта. Описали всё от 0 до 1.
1. Определите цель проекта
• Сформулируйте, зачем вы хотите создать этот проект (например, улучшить навыки, создать портфолио, решить реальную задачу).
• Разбейте цель на более мелкие, измеримые задачи.
2. Выберите интересную и полезную тему
• Выберите тему, которая вам интересна, чтобы поддерживать мотивацию.
• Убедитесь, что проект решает реальную проблему или может быть полезен другим.
3. Составьте план разработки
• Определите основные этапы и сроки выполнения.
• Разбейте проект на небольшие задачи и milestones.
• Оцените, сколько времени вы готовы уделять проекту.
4. Выберите стек технологий
• Подумайте, какие технологии вам хочется освоить или использовать в проекте.
• Выберите инструменты и библиотеки, которые соответствуют вашим целям.
5. Настройте репозиторий и версионный контроль
• Создайте репозиторий на GitHub, GitLab или другом сервисе для хранения кода.
• Настройте .gitignore и добавьте базовые файлы конфигурации.
6. Подготовьте рабочее окружение
• Настройте IDE, редактор кода и необходимые инструменты (например, Docker, виртуальные окружения, базу данных).
• Если проект требует внешних сервисов, настройте их.
7. Начните с прототипа
• Разработайте прототип или MVP (минимально жизнеспособный продукт).
• Сосредоточьтесь на реализации ключевой функциональности без излишних деталей.
8. Пишите тесты с самого начала
• Начинайте писать юнит-тесты для важных функций
• Убедитесь, что ваш код легко тестировать и поддерживать.
9. Документируйте
• Оставляйте комментарии и создавайте документацию. Иначе рискуете оказаться в меме, где разработчик не понимает того, что писал неделю назад.
• Объясняйте, как запустить проект, какие зависимости использовались и как использовать функциональность.
10. Отслеживайте прогресс
• Регулярно проверяйте выполнение задач по плану.
• Спрашивайте сами у себя статус по задаче.
• Используйте инструменты для управления задачами и следите за сроками.
11. Развивайте проект
• Начните с основной функциональности и постепенно добавляйте новые возможности.
• Не пытайтесь сразу сделать всё идеально, любой проект начинается из .. и палок
12. Публикуйте проект
• Если это веб-приложение, разместите его на хостинге.
• Если это библиотека или инструмент, опубликуйте его на платформах с библиотеками, поделитесь с коллегами.
13. Продемонстрируйте результат
• Напишите блог-пост или сделайте видеопрезентацию проекта
• Поделитесь ссылкой на проект в социальных сетях, форумах или с коллегами.
14. Получайте обратную связь
• Попросите других людей проверить ваш проект и дать отзыв.
• Используйте полученные комментарии для улучшений.
15. Планируйте дальнейшее развитие
• После завершения базового функционала подумайте, что можно добавить или улучшить
• Сделайте план для будущих улучшений и новых функций.
Следуйте пошагово по составленному чек-листу и тогда у вашего приложения будет шанс показать себя, а не лежать в стадии «почти MVP» несколько лет.
🐸 Библиотека Go-разработчика #буст
Составили для вас чек-лист, который поможет вам структурировать процесс создания вашего пет-проекта. Описали всё от 0 до 1.
1. Определите цель проекта
• Сформулируйте, зачем вы хотите создать этот проект (например, улучшить навыки, создать портфолио, решить реальную задачу).
• Разбейте цель на более мелкие, измеримые задачи.
2. Выберите интересную и полезную тему
• Выберите тему, которая вам интересна, чтобы поддерживать мотивацию.
• Убедитесь, что проект решает реальную проблему или может быть полезен другим.
3. Составьте план разработки
• Определите основные этапы и сроки выполнения.
• Разбейте проект на небольшие задачи и milestones.
• Оцените, сколько времени вы готовы уделять проекту.
4. Выберите стек технологий
• Подумайте, какие технологии вам хочется освоить или использовать в проекте.
• Выберите инструменты и библиотеки, которые соответствуют вашим целям.
5. Настройте репозиторий и версионный контроль
• Создайте репозиторий на GitHub, GitLab или другом сервисе для хранения кода.
• Настройте .gitignore и добавьте базовые файлы конфигурации.
6. Подготовьте рабочее окружение
• Настройте IDE, редактор кода и необходимые инструменты (например, Docker, виртуальные окружения, базу данных).
• Если проект требует внешних сервисов, настройте их.
7. Начните с прототипа
• Разработайте прототип или MVP (минимально жизнеспособный продукт).
• Сосредоточьтесь на реализации ключевой функциональности без излишних деталей.
8. Пишите тесты с самого начала
• Начинайте писать юнит-тесты для важных функций
• Убедитесь, что ваш код легко тестировать и поддерживать.
9. Документируйте
• Оставляйте комментарии и создавайте документацию. Иначе рискуете оказаться в меме, где разработчик не понимает того, что писал неделю назад.
• Объясняйте, как запустить проект, какие зависимости использовались и как использовать функциональность.
10. Отслеживайте прогресс
• Регулярно проверяйте выполнение задач по плану.
• Спрашивайте сами у себя статус по задаче.
• Используйте инструменты для управления задачами и следите за сроками.
11. Развивайте проект
• Начните с основной функциональности и постепенно добавляйте новые возможности.
• Не пытайтесь сразу сделать всё идеально, любой проект начинается из .. и палок
12. Публикуйте проект
• Если это веб-приложение, разместите его на хостинге.
• Если это библиотека или инструмент, опубликуйте его на платформах с библиотеками, поделитесь с коллегами.
13. Продемонстрируйте результат
• Напишите блог-пост или сделайте видеопрезентацию проекта
• Поделитесь ссылкой на проект в социальных сетях, форумах или с коллегами.
14. Получайте обратную связь
• Попросите других людей проверить ваш проект и дать отзыв.
• Используйте полученные комментарии для улучшений.
15. Планируйте дальнейшее развитие
• После завершения базового функционала подумайте, что можно добавить или улучшить
• Сделайте план для будущих улучшений и новых функций.
Следуйте пошагово по составленному чек-листу и тогда у вашего приложения будет шанс показать себя, а не лежать в стадии «почти MVP» несколько лет.
Please open Telegram to view this post
VIEW IN TELEGRAM
🫣 Устали от HR-сказок про «дружный коллектив» и «печеньки в офисе»?
Давайте честно поговорим о том, что действительно происходит на IT-рынке. Не в розовых презентациях, а в реальной жизни разработчиков, тестировщиков, аналитиков и всех, кто живет кодом.
🧐 Мы проводим исследование, чтобы выяснить:
— Как часто мы прыгаем между компаниями (и почему)
— Какие красные флаги заставляют бежать без оглядки
— Где реально находят работу
— Что бесит в HR больше всего
— Сколько кругов собеседований — это уже перебор
Результаты покажут реальную картину рынка. Без приукрашиваний. Может, компании поймут, что нужно менять, а специалисты — куда двигаться дальше.
😈 Опрос займет 5 минут, но результаты будут работать на всех нас → https://clc.to/9aaXVg
Давайте честно поговорим о том, что действительно происходит на IT-рынке. Не в розовых презентациях, а в реальной жизни разработчиков, тестировщиков, аналитиков и всех, кто живет кодом.
🧐 Мы проводим исследование, чтобы выяснить:
— Как часто мы прыгаем между компаниями (и почему)
— Какие красные флаги заставляют бежать без оглядки
— Где реально находят работу
— Что бесит в HR больше всего
— Сколько кругов собеседований — это уже перебор
Результаты покажут реальную картину рынка. Без приукрашиваний. Может, компании поймут, что нужно менять, а специалисты — куда двигаться дальше.
😈 Опрос займет 5 минут, но результаты будут работать на всех нас → https://clc.to/9aaXVg
Please open Telegram to view this post
VIEW IN TELEGRAM
Go всё больше привлекает начинающих инди-разработчиков. С библиотекой Ebiten простая аркада с графикой, звуком и физикой делается за пару дней.
Предлагаем посмотреть видео, в котором на наших глазах придумывается и разрабатывается мини-игра на Go.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Когда в приложении три сервиса — можно вручную стартовать их в
main()
, закрыть через defer
, и всё будет «работать».А потом начинается боль: кто должен стартовать первым? Как убедиться, что компонент реально готов? Как корректно всё гасить при падении?
Знакомьтесь — GOscade, библиотека для автоматического старта, остановки и координации зависимостей в Go.
🧩 Что делает GOscade:
• Компоненты запускаются по цепочке: сначала зависимости, потом — всё остальное
• Готовность проверяется через
readinessProbe(nil)
— если не готов, зависящие компоненты не стартуют.• Остановка — тоже по графу: если кто-то падает, все связанные корректно завершаются
• Всё управляется через контектс — понятно, прозрачно, канонично по-Go-шному.
Как это выглядит в коде:
func (s *Server) Run(ctx context.Context, ready func(error)) error {
go func() {
err := checkPort(s.Addr)
ready(err)
}()
if err := s.ListenAndServe(); err != nil {
return err
}
<-ctx.Done()
return s.Shutdown(context.Background())
}
Всё просто. Главное — сигнализировать о готовности и уметь завершаться по ctx.
Please open Telegram to view this post
VIEW IN TELEGRAM
🥴 Средний разработчик меняет работу каждые 1,5 года
И это не потому, что мы такие непостоянные. Просто рынок показывает свое истинное лицо быстрее, чем успевают напечатать визитки.
Поэтому мы собираем инсайды от тех, кто находится в окопах digital-трансформации каждый день. От джуниоров, которые только въезжают в профессию, до сеньоров, повидавших всякого.
😳 О чем говорим откровенно:
— Job-hopping и что за этим стоит
— Red flags, которые мгновенно убивают мотивацию
— Реальные источники вакансий (не те, что рекламируют)
— Боль от общения с рекрутерами
— Сколько этапов отбора — норма, а сколько — издевательство
Когда мы объединим опыт сотен IT-специалистов, получится настоящая карта того, как устроена индустрия. Не по версии HR-отделов, а по версии тех, кто пишет код, тестирует продукты и двигает технологии вперед.
🚀 Участвовать в исследовании → https://clc.to/9aaXVg
И это не потому, что мы такие непостоянные. Просто рынок показывает свое истинное лицо быстрее, чем успевают напечатать визитки.
Поэтому мы собираем инсайды от тех, кто находится в окопах digital-трансформации каждый день. От джуниоров, которые только въезжают в профессию, до сеньоров, повидавших всякого.
😳 О чем говорим откровенно:
— Job-hopping и что за этим стоит
— Red flags, которые мгновенно убивают мотивацию
— Реальные источники вакансий (не те, что рекламируют)
— Боль от общения с рекрутерами
— Сколько этапов отбора — норма, а сколько — издевательство
Когда мы объединим опыт сотен IT-специалистов, получится настоящая карта того, как устроена индустрия. Не по версии HR-отделов, а по версии тех, кто пишет код, тестирует продукты и двигает технологии вперед.
🚀 Участвовать в исследовании → https://clc.to/9aaXVg
Please open Telegram to view this post
VIEW IN TELEGRAM
Перед нами типичный выбор: остаться на текущем месте с повышением 20–30% или принять предложение от нового проекта с неопределёнными перспективами.
Повышение на 20-30% — это стабильность и гарантии
Многие считают, что повышение в текущей компании — это безопасный выбор. У вас уже есть понимание процессов, команда, и вам не нужно сталкиваться с рисками.
Зачем менять комфорт и стабильность ради неизвестности? Особенно, если увеличение зарплаты даёт возможность улучшить качество жизни.
Прыжок в новый проект — шанс на быстрый рост и новые возможности
С другой стороны, прыжок в новый проект может принести не только более высокую зарплату, но и новые вызовы. Это шанс раскрыть себя в незнакомой среде, получить уникальный опыт и, возможно, намного быстрее вырасти как специалист.
💬 Что важнее — стабильность или риск ради потенциального карьерного скачка? Делитесь своим опытом и мнением в комментариях👇
Please open Telegram to view this post
VIEW IN TELEGRAM
📰 Дайджест недели
Пора освежить знания. Мы выбрали самые интересные статьи и материалы недели, которые стоит изучить.
— Минорный релиз Go
В Go 1.24.4 включены исправления для уязвимости в пакете
— Ошибки, которые ставят под угрозу безопасность вашего API
— Свежий выпуск Cup o' Go
Обсуждается отказ Go от синтаксической обработки ошибок, ошибка HTTP 407 и необходимость DI-фреймворков.
— Обработку ошибок в Go не будут менять
— Поучаствуйте в нашем опросе
— Релиз Pluto v. 1.0.0
Pluto исправляет имена файлов в различных операционных системах. Автоматически обрабатывает пробелы, спецсимволы и регистр в именах файлов.
🐸 Библиотека Go-разработчика #свежак
Пора освежить знания. Мы выбрали самые интересные статьи и материалы недели, которые стоит изучить.
— Минорный релиз Go
В Go 1.24.4 включены исправления для уязвимости в пакете
net/http
, проблемы с dlopen
и улучшенная поддержка модуля FIPS 140.— Ошибки, которые ставят под угрозу безопасность вашего API
— Свежий выпуск Cup o' Go
Обсуждается отказ Go от синтаксической обработки ошибок, ошибка HTTP 407 и необходимость DI-фреймворков.
— Обработку ошибок в Go не будут менять
— Поучаствуйте в нашем опросе
— Релиз Pluto v. 1.0.0
Pluto исправляет имена файлов в различных операционных системах. Автоматически обрабатывает пробелы, спецсимволы и регистр в именах файлов.
Please open Telegram to view this post
VIEW IN TELEGRAM
❗Вакансии «Библиотеки программиста»
Привет! Мы ищем контент-менеджеров, которые будут вести наши телеграм-каналы о разработке.
👾 Требования:
— знать принципы залетающего контента
— разбираться в темах, связанных с разработкой
Большим плюсом будет навык программирования на каких-либо языках.
✨ Условия:
— удаленка
— частичная занятость
— сдельная оплата в зависимости от количества задач
🔥 Оставляйте отклик, и мы свяжемся с вами: https://forms.gle/o4BZnsQ526JoqsCq9
Привет! Мы ищем контент-менеджеров, которые будут вести наши телеграм-каналы о разработке.
👾 Требования:
— знать принципы залетающего контента
— разбираться в темах, связанных с разработкой
Большим плюсом будет навык программирования на каких-либо языках.
✨ Условия:
— удаленка
— частичная занятость
— сдельная оплата в зависимости от количества задач
🔥 Оставляйте отклик, и мы свяжемся с вами: https://forms.gle/o4BZnsQ526JoqsCq9
Forwarded from Библиотека задач по Go | тесты, код, задания
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Go-разработчик — Удаленно (Москва).
Senior Golang Engineer — от 5 000 $.
Senior Golang-разработчик — от 250 000 ₽, Удаленно (Омск).
Go-разработчик — от 100 000 ₽, Офис (Екатеринбург).
Senior Golang-разработчик — до 350 000₽, Удаленно.
Бустер — Удалённо (Не вставая с кресла)
Please open Telegram to view this post
VIEW IN TELEGRAM
Проблема: при работе с несколькими ветками в Git история коммитов может становиться запутанной из-за частых слияний, что усложняет анализ изменений.
Решение: в книге "Mastering Git" автор показывает использование команды git rebase, которая позволяет линейно интегрировать изменения из одной ветки в другую, сохраняя историю чистой и понятной.
Пример кода:
# Переключаемся на ветку feature
git checkout feature
# Выполняем rebase на master
git rebase master
# Если возникают конфликты, разрешаем их и продолжаем rebase
git add <исправленные файлы>
git rebase --continue
# Переключаемся на master и сливаем изменения
git checkout master
git merge feature --ff-only
Преимущества:
— Чистая и линейная история изменений.
— Упрощение процесса ревью кода.
— Лёгкость в отслеживании изменений.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Раньше: многоэтапные собеседования и тестовые
Сейчас: возможность получить оффер за один день!
Сбер зовёт Go-разработчиков на One Day Offer — он пройдёт 21 июня в онлайн-формате. Команда ищет будущих коллег в рекламную платформу SberAds сразу в несколько продуктов:
— Медийная реклама
— Performance Ads
— Инструменты разработки
— RTS
Регистрируйтесь на One Day Offer и будьте готовы к карьерным изменениям и работой над действительно масштабными задачами!
Сейчас: возможность получить оффер за один день!
Сбер зовёт Go-разработчиков на One Day Offer — он пройдёт 21 июня в онлайн-формате. Команда ищет будущих коллег в рекламную платформу SberAds сразу в несколько продуктов:
— Медийная реклама
— Performance Ads
— Инструменты разработки
— RTS
Регистрируйтесь на One Day Offer и будьте готовы к карьерным изменениям и работой над действительно масштабными задачами!
Please open Telegram to view this post
VIEW IN TELEGRAM
😡 А вас тоже бесят облачные сервисы?
Согласитесь, статус отношений с облаками — все сложно. Но что, если можно изменить правила игры?
Мы готовим нечто особенное в мире облачных технологий, но сначала хотим услышать правду от тех, кто реально работает с облаками каждый день.
❓Что мы хотим узнать:
— Для чего вы реально используете облако?
— Чего катастрофически не хватает прямо сейчас?
— Что бесит больше всего? (можно материться)
— Как выбираете провайдера — по цене или по любви?
— и тому подобное
По результатам опроса мы подготовим исследование без маркетингового мусора и вы узнаете, как обстоят дела у коллег.
⚡️Время на опрос: меньше, чем на кофе-брейк. Жмите → https://clc.to/nboYDA
Согласитесь, статус отношений с облаками — все сложно. Но что, если можно изменить правила игры?
Мы готовим нечто особенное в мире облачных технологий, но сначала хотим услышать правду от тех, кто реально работает с облаками каждый день.
❓Что мы хотим узнать:
— Для чего вы реально используете облако?
— Чего катастрофически не хватает прямо сейчас?
— Что бесит больше всего? (можно материться)
— Как выбираете провайдера — по цене или по любви?
— и тому подобное
По результатам опроса мы подготовим исследование без маркетингового мусора и вы узнаете, как обстоят дела у коллег.
⚡️Время на опрос: меньше, чем на кофе-брейк. Жмите → https://clc.to/nboYDA
🔎 Маст-хэв для тех, кто копается в вебе
Этот инструмент на Go умеет обходить сайты, искать email, ключевые слова и проверять домены на битые ссылки.
Работает с приоритетной очередью, хранит данные в BadgerDB и умеет обходить сайты с учётом robots.txt.
GolamV2 — это как швейцарский нож для пентестеров, SEO-специалистов и всех, кто занимается веб-анализом. А самое главное — написан на Go.
➡️ Заглянуть в репозиторий проекта
🐸 Библиотека Go-разработчика #буст
Этот инструмент на Go умеет обходить сайты, искать email, ключевые слова и проверять домены на битые ссылки.
Работает с приоритетной очередью, хранит данные в BadgerDB и умеет обходить сайты с учётом robots.txt.
GolamV2 — это как швейцарский нож для пентестеров, SEO-специалистов и всех, кто занимается веб-анализом. А самое главное — написан на Go.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔧 Как не сломать рабочие структуры
Добавление новых полей в структуру может привести к скрытым багам — особенно если структура уже используется в JSON, тестах или публичных API.
Разберёмся как избежать ошибок.
1. Делайте безопасные дефолтные значения
Go не выдаёт ошибку, если вы забыли про новое поле. Оно просто инициализируется zero value. Убедитесь, что это значение не нарушает логику.
2. Вводите конструкторы
Если структура публичная, то нужно запретить прямое создание через
3. Добавьте unit-тесты
Проверьте, что структура:
• Корректно сериализуется/десериализуется.
• Имеет ожидаемые значения по умолчанию.
• Работает в старых сценариях после добавления поля.
4. Используйте линтер
Добавляйте поля в структуры безопасно: через ноль-значения, конструкторы, тесты и линтер.
🐸 Библиотека Go-разработчика #буст
Добавление новых полей в структуру может привести к скрытым багам — особенно если структура уже используется в JSON, тестах или публичных API.
Разберёмся как избежать ошибок.
1. Делайте безопасные дефолтные значения
Go не выдаёт ошибку, если вы забыли про новое поле. Оно просто инициализируется zero value. Убедитесь, что это значение не нарушает логику.
bool
по умолчанию — false
. Если вы добавили поле IsVerified
, то false
должно быть безопасной трактовкой.2. Вводите конструкторы
Если структура публичная, то нужно запретить прямое создание через
MyStruct{}
. Введите конструктор с нужными параметрами. Так компилятор покажет ошибку, если будет пропущен аргумент.3. Добавьте unit-тесты
Проверьте, что структура:
• Корректно сериализуется/десериализуется.
• Имеет ожидаемые значения по умолчанию.
• Работает в старых сценариях после добавления поля.
4. Используйте линтер
exhaustruct
exhaustruct
покажет, где поля не инициализированы явно. Работает с go vet
.Добавляйте поля в структуры безопасно: через ноль-значения, конструкторы, тесты и линтер.
Please open Telegram to view this post
VIEW IN TELEGRAM